/******************************************************************************
_string.js : String조작 함수 라이브러리

작성일 : 2001. 08. 14
수정일 :
 *****************************************************************************/

//----------------------------------------------------------------------------
// 왼쪽 공백문자만 없앰.
//----------------------------------------------------------------------------
function ltrim (str) {
if (str == null) return "";

var dest = str;
var pos = 0;

while (dest.charAt(pos) == " ") pos++;
dest = dest.substring(pos, dest.length);

return dest;

}

//----------------------------------------------------------------------------
// 오른쪽 공백문자만 없앰
//----------------------------------------------------------------------------
function rtrim (str) {
if (str == null) return "";

var dest = str;
var pos = dest.length-1;

while (dest.charAt(pos) == " ") pos--;

dest = dest.substring(0, pos+1);
return dest;

}

//----------------------------------------------------------------------------
// 좌우 공백문자를 없앰.
//----------------------------------------------------------------------------
function trim (str) {
if (str == null) return "";

var dest = str;

// 왼쪽 공백 제거
var pos = 0;
while (dest.charAt(pos) == " ") pos++;
dest = dest.substring(pos, dest.length);

// 오른쪽 공백 제거
pos = dest.length-1;
while (dest.charAt(pos) == " ") pos--;
dest = dest.substring(0, pos+1);

return dest;
}

//----------------------------------------------------------------------------
// 공백문자를 모두 없앰.
//----------------------------------------------------------------------------
function trimall (str) {
if (str == null) return "";

var dest = str;

for (; dest.indexOf(" ") != -1 ;) {
	dest = dest.replace(" ","") ;
}
return dest;
}

//----------------------------------------------------------------------------
// 특정문자 X를 Y로 모두 바꿈.
//----------------------------------------------------------------------------
function replaceall (str,x,y) {

var dest =  "";
var c;

for (var i=0; i<str.length; i++) {
	if (str.substring(i,i+1) == x)
		c = y;
	else
		c = str.substring(i,i+1)
	dest = dest + c;
}
return dest
}

//----------------------------------------------------------------------------
// 주어진 string내에서 delemeter로 구분하여 idx만큼째 있는 것을 return
//----------------------------------------------------------------------------
function getToken(src, idx, delemeter) {
var cnt = 0
var tok = ""
if (delemeter == null) var delemeter = "^";

for (var i=0; i<src.length; i++) {
	if (src.substring(i,i+1) == delemeter)
		cnt++;
	else if (cnt == idx-1)
		tok = tok + src.substring(i,i+1);

	if (cnt >= idx) break;
}
return tok
}

//----------------------------------------------------------------------------
// 문자스트링의 글자수를 카운트한다.
//----------------------------------------------------------------------------
function countLength(textObj, counterObj, maxlen) {

if (textObj.value.length > maxlen) {
	alert("입력값의 한계(" + maxlen + "자)를 넘었습니다.");
	return -1;
		//field.value = field.value.substring(0, maxlimit);
}
else  {
	counterObj.value = maxlen - textObj.value.length;
	return counterObj.value;
}
}


//----------------------------------------------------------------------------
//문자스트링의 Byte수를 리턴한다.
//----------------------------------------------------------------------------
function getStrBytes(str) {
	if (str == null) return 0;

	var buf = new String(str);
	var tbyte = 0;
	var ch;
	for (var i=0; i<buf.length; i++) {
		ch = buf.charAt(i);

		if (escape(ch).length > 4) { // 4보다 크면 2bytes문자(한글 등)
			tbyte += 3; // 기본은 +2이나, 오라클이 UTF-8인코딩을 사용하면 한글을 3bytes로 저장한다.
		}
		else {//if (ch!='\r') {
			tbyte++;
		}
	}

	return tbyte;
}


//----------------------------------------------------------------------------
// 문자스트링의 Byte수를 카운트한다.
//----------------------------------------------------------------------------
function countByte(textObj, counterObj, maxbyte) {
var buf = "";
var len = 0, tbyte = 0;
var ch;

buf = new String(textObj.value);
len = len.length;

for (var i=0; i<buf.length; i++) {
	ch = buf.charAt(i);

	if (escape(ch).length > 4) {
		tbyte += 2;
	}
	else {//if (ch!='\r') {
		tbyte++;
	}
}

counterObj.value = tbyte;

if (tbyte > maxbyte) {
	var reserve = tbyte - maxbyte;
	alert("입력값의 한계(" + maxbyte + "byte)를 넘었습니다.");
		//cutText();
		return -1;
}
else
	return tbyte;
}


/**
 * 문자스트링의 Byte수를 카운트한다.
 * @param textObjName 텍스트필드명(name 속성값)
 * @param maxBytes 최대 바이트 수
 * @param defaultBytes 2bytes문자일 경우 카운트할 byte수
 */
function countBytes(textObjName, maxBytes, defaultBytes, fieldName) {
	var buf = "";
	var len = 0, tbyte = 0;
	var ch;

	buf = new String(document.all(textObjName).value);
	len = len.length;

	for (var i=0; i<buf.length; i++) {
		ch = buf.charAt(i);

		if (escape(ch).length > 4) { // 4보다 크면 2bytes문자(한글 등)
			tbyte += defaultBytes; // 기본은 +2이나, 오라클이 UTF-8인코딩을 사용하면 한글을 3bytes로 저장한다.
		}
		else {//if (ch!='\r') {
			tbyte++;
		}
	}

	if (tbyte > maxBytes) {
	var reserve = tbyte - maxBytes;
	if(fieldName != null)
		alert(fieldName + "이(가) 입력값의 한계(" + maxBytes + "bytes)를 넘었습니다.\n한글은 한문자에 3bytes입니다.");
	else
		alert("입력값의 한계(" + maxBytes + "bytes)를 넘었습니다.\n한글은 한문자에 3bytes입니다.");

		//cutText();
		return -1;
	}
	else
	return tbyte;
}

/**
 * 문자스트링의 Byte수를 카운트한다.
 * @param textObjName 텍스트필드명(name 속성값)
 * @param defaultBytes 2bytes문자일 경우 카운트할 byte수
 */
function countBytesOnly(textObjName, defaultBytes) {
	var buf = "";
	var len = 0, tbyte = 0;
	var ch;

	buf = new String(document.all(textObjName).value);
	len = len.length;

	for (var i=0; i<buf.length; i++) {
		ch = buf.charAt(i);

		if (escape(ch).length > 4) { // 4보다 크면 2bytes문자(한글 등)
			tbyte += defaultBytes; // 기본은 +2이나, 오라클이 UTF-8인코딩을 사용하면 한글을 3bytes로 저장한다.
		}
		else {//if (ch!='\r') {
			tbyte++;
		}
	}

return tbyte;
}

function checkBytes(textObjName, maxBytes, defaultBytes, fieldName) {
	var buf = "";
	var len = 0, tbyte = 0;
	var ch;

	buf = new String(document.all(textObjName).value);
	len = len.length;

	for (var i=0; i<buf.length; i++) {
		ch = buf.charAt(i);

		//alert(ch);
		//alert(escape(ch));

		if (ch.charCodeAt(0) > 127) { // 127보다 크면 2bytes문자(한글 등)
		// if (escape(ch).length > 4) { // 4보다 크면 2bytes문자(한글 등)
			tbyte += defaultBytes; // 기본은 +2이나, 오라클이 UTF-8인코딩을 사용하면 한글을 3bytes로 저장한다.
		}
/*		else if (ch == '\r') { //20090828 Sung,HongJe. 개행 시 바이트 수 계산 오류 수정
			//alert("\\r");
			tbyte++;
		}
		else if(ch == "\n") {
			//alert("개행");
			tbyte++;
		}*/
		else {
			tbyte++;
		}
	}

	//alert(tbyte);

	if (tbyte > maxBytes) {
	var reserve = tbyte - maxBytes;
	if(fieldName != null)
		alert(fieldName + "이(가) 입력값의 한계(" + maxBytes + "bytes)를 넘었습니다.\n한글은 한문자에 " + defaultBytes + "bytes입니다.\n현재 길이는 " + tbyte + "bytes입니다.");
	else
		alert("입력값의 한계(" + maxBytes + "bytes)를 넘었습니다.\n한글은 한문자에 " + defaultBytes + "bytes입니다.\n현재 길이는 " + tbyte + "bytes입니다.");

		//cutText();
		return false;
	}
	else
	return true;
}

function checkBytesByObj(textObj, maxBytes, defaultBytes, fieldName) {
	var buf = "";
	var len = 0, tbyte = 0;
	var ch;

	buf = new String(textObj.value);
	len = len.length;

	for (var i=0; i<buf.length; i++) {
		ch = buf.charAt(i);

		if (escape(ch).length > 4) { // 4보다 크면 2bytes문자(한글 등)
			tbyte += defaultBytes; // 기본은 +2이나, 오라클이 UTF-8인코딩을 사용하면 한글을 3bytes로 저장한다.
		}
		else {//if (ch!='\r') {
			tbyte++;
		}
	}

	if (tbyte > maxBytes) {
	var reserve = tbyte - maxBytes;
	if(fieldName != null)
		alert(fieldName + "이(가) 입력값의 한계(" + maxBytes + "bytes)를 넘었습니다.\n한글은 한문자에 " + defaultBytes + "bytes입니다.\n현재 길이는 " + tbyte + "bytes입니다.");
	else
		alert("입력값의 한계(" + maxBytes + "bytes)를 넘었습니다.\n한글은 한문자에 " + defaultBytes + "bytes입니다.\n현재 길이는 " + tbyte + "bytes입니다.");

		//cutText();
		checkBytesByObj.focus();
		return false;
	}
	else
	return true;
}
//----------------------------------------------------------------------------
// 콘텐츠 메타 정의 에서 사용
//----------------------------------------------------------------------------
function checkMaxBytes(target, maxBytes, defaultBytes, fieldName) {
	try {
		if (!checkBytes(target.name, maxBytes, defaultBytes, fieldName)) {
			//target.value = "";
			target.focus();
		}
	} catch(e) {}
}


//----------------------------------------------------------------------------
// 입력값의 범위를 체크한다.
// ex : onchange="chkChar('1234567890abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ','Zip Code')
//----------------------------------------------------------------------------
function chkChar(charSet, title, obj) {
	if (obj == null) obj = window.event.srcElement;

	for (i=0; i<obj.value.length; i++) {
		if(charSet.indexOf(obj.value.charAt(i)) == -1) {
		alert("["+ title + "] 항목에 잘못된 값이 입력되었습니다. ");
		event.returnValue = false;
		obj.focus();
		return false;
		}
	}
	return true;
}


/* =============================================
Comment: 숫자 입력시 자동으로 앞에 '0'을 채워줌
Return :
Usage  :
============================================= */
function fillZero( value, length ){

	var vlength = value.length;
	var zero = '';

	if (vlength == 0) return value;
	if (isNaN(value)) return value;

	for ( i = vlength; i < length; i++ ) {
		zero = zero + '0';
	}

	value = zero + value;

	return value;
}

/* =============================================
Comment: 숫자에 콤마를 추가한다.
Return :
Usage  : <input type="text" name="won" onkeypress="onlyNum();" style="ime-mode:disabled;"
				onKeyUp="this.value=toCurrencyFormat(this.value)">
============================================= */
function toCurrencyFormat(s) {
	if(ltrim(s) == "0") {
		return ltrim(s);
	}

	var str  = s.replace(/\D/g,"");
	var len  = str.length;
	var tmp  = "";
	var tm2  = "";
	var i    = 0;

	while (str.charAt(i) == '0') i++;
	str = str.substring(i,len);
	len = str.length;
	if(len < 3) {
		return str;
	} else {
		var sit = len % 3;
		if (sit > 0) {
			tmp = tmp + str.substring(0,sit) + ',';
			len = len - sit;
		}
		while (len > 3) {
			tmp = tmp + str.substring(sit,sit+3) + ',';
			len = len - 3;
			sit = sit + 3;
		}
		tmp = tmp + str.substring(sit,sit+3) + tm2;
		str = tmp;
	}
	return str;
}


/* =============================================
Comment: 변수의 콤마를 제거한다.
Return :
Usage  :
============================================= */
function removeComma(val) {
	str = "";
	strr = val.split(",");
	for (r=0;r<strr.length;r++){
		str += strr[r];
	}
	return str;
}

// -->


/* =============================================
Comment: 문자열 str1중에서 str2를 str3로 변환.
Return :
Usage  :
============================================= */
function replace(str1, str2, str3) {
	var temp;
	var nPos = -1;
	temp = "" + str1;
	while ((nPos = temp.indexOf(str2)) > -1) {
		temp = "" + (temp.substring(0, nPos) + str3 + temp.substring((nPos + str2.length), temp.length));
	}

	return temp;
}


/* =============================================
Comment: str1의 문자열을 str2의 태그로 둘러쌓인 문자열로 반환한다.
Return :
Usage  :
============================================= */
function setTagValue(str1, str2) {
	var rValue = "";

	if(str1 != null && !isEmpty(str2)) {
		rValue = "<" + str2 + ">" + str1 + "</" + str2 + ">";
	}

	return rValue;
}


/* =============================================
Comment: str1의 문장중 str2의 태그로 둘러쌓인 문자열을 반환한다
Return :
Usage  :
============================================= */
function getTagValue(str1, str2) {
	var rValue = "";
	var n1=str1.indexOf("<"+str2+">");
	var n2=str1.indexOf("</"+str2+">");

	if (n1 >= 0 && n2 >= 0) {
		rValue = str1.substring(n1 + 2 + str2.length, n2);
	}

	return rValue
}


/* =============================================
Comment: str1의 문장중 str2의 태그로 둘러쌓인
		문자열들을 배열로 반환한다
Return :
Usage  :
============================================= */
function getTagValues(str1, str2) {
	var arrEvent = new Array();
	var nFrom = 0;
	var nCnt = 0;

	while (true) {
		var n1=str1.indexOf("<"+str2+">",nFrom);
		var n2=str1.indexOf("</"+str2+">",nFrom);
		if (n1 >= 0 && n2 >= 0) {
			arrEvent[nCnt] = str1.substring(n1 + 2 + str2.length, n2);
		} else {
			break;
		}

		nFrom = n2 + 3 + str2.length;
		nCnt++;
	}

	return arrEvent;
}

function isNull(str) {
	if(str == null)
		return true;

	if(str == "")
		return true;

	return false;
}

function isNullCheck(field, fieldName) {
	var str = document.all(field).value;
	if(str == null || str == "") {
		alert(fieldName + "을(를) 입력해주세요.");
		document.all(field).focus();
		return true;
	}

	return false;
}

/* =============================================
Comment: 문자열이 숫자이면 true를 리턴
Return :
Usage  :
============================================= */
function isNum(ohs) {
	if(isEmpty(ohs)) {
		return false;
	}
	if ((ohs.charAt(0)!='-') && (ohs.charAt(0)<'0'||ohs.charAt(0)>'9')) { //음수일경우
		return false;
	}
	for (var i=1; i<ohs.length; i++) {
		if (ohs.charAt(i)<'0' || ohs.charAt(i)>'9') {
			return false;
		}
	}

	return true;
}

function isNumCheck(fieldObj, fieldName) {
	var ohs = fieldObj.value;

	if(ohs == "" || ohs == null) {
		return true;
	}

	if(!isNum(ohs)) {
		alert(fieldName + "가 숫자가 아닙니다.");
		fieldObj.focus();
		return false;
	}

	return true;
}

function checkNumField(fieldObj, fieldName) {
	var ohs = fieldObj.value;

	if(ohs == "" || ohs == null) {
		return true;
	}

	if(!isNum(ohs)) {
		alert(fieldName + "가 숫자가 아닙니다.");
		fieldObj.value = "";
		fieldObj.focus();
		return false;
	}

	return true;
}

/* =============================================
Comment: Key Event에서 숫자만 입력받게 함
Return :
Usage  :
============================================= */
function onlyNumCheck() {
	if ((event.keyCode<48) || (event.keyCode>57))
	{
		if ((event.keyCode != 46))
		{
			alert("숫자만 입력하세요.");
			event.returnValue=false;
		}
	}

	return true;
}

/* =============================================
Comment: 문자열이 비어 있으면 true를 리턴
Return :
Usage  :
============================================= */
function isEmpty(ohs) {
	if (ohs==null || ltrim(ohs)=="") {
		return true;
	} else {
		return false;
	}
}

function checkMinLength(field, min, fieldName) {
	if(document.all(field).value.length < min) {
		alert(fieldName + "을(를) " + min + "자 이상 입력해야 합니다.");
		document.all(field).focus();
		return false;
	}

	return true;
}

/**
 * 이메일 형식 체크
 * @param field 입력필드명(name)
 * @return 맞으면 true, 맞지 않으면 false
 */
function checkEmail(field) {
	// 이메일에 특수문자 허용 ! # $ % ( ) * + - . ; [ \ ] ^ _ | ~
	re = /^[A-Za-z0-9!#$%()*+-.;\[\]\^_|~]{3,40}@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/g;
	// re=/^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
	// re=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;

	// alert(document.all(field).value);
	if(!re.test(document.all(field).value.length < 6 || document.all(field).value)) {
			alert("메일형식이 맞지 않습니다.");
			return false;
	}

	return true;
}


//파일 업로드 체크
function checkFile(file, fileExt) {
	var value = file.value;

	if(value == "" || value == null)
		return true;

	var filename = value.substring(value.lastIndexOf("\\")+1);
	//alert(filename);
	var ext = filename.substring(filename.lastIndexOf(".") + 1);
	//alert(ext);

	if(fileExt.indexOf(ext.toLowerCase()) == -1 && ext != "") {
		alert(fileExt + " 파일이 아닙니다.");
		//file.select();
		//document.execCommand('Delete');
		return false;
	}

	return true;
}

/**
 * 텍스트필드가 스크립트를 포함하고 있나 확인
 * @param fieldObj 필드 오브젝트
 * @param fieldName 필드명
 * @return
 */
function checkFieldIncludeScript(fieldObj, fieldName) {
	var value = fieldObj.value;
	if(value == "" || value == null) {
		return true;
	}

	if(value.toLowerCase().indexOf("<script>") != -1 || value.toLowerCase().indexOf("<object>") != -1 || value.toLowerCase().indexOf("<applet>") != -1 ||
		value.toLowerCase().indexOf("<embed>") != -1 || value.toLowerCase().indexOf("<form>") != -1 || value.toLowerCase().indexOf("<iframe>") != -1 ||
		value.toLowerCase().indexOf("<applet>") != -1) {
		alert(fieldName + "이(가) 스크립트를 포함하고 있습니다.");
		return false;
	}

	if(value.indexOf("\<") != -1 || value.indexOf("\>") != -1 ||
			value.indexOf("\\") != -1 || value.indexOf("\!") != -1 ||
			value.indexOf("\&") != -1 || value.indexOf("\%") != -1) {

		alert("<>\\!&%등의 특수문자는 입력할 수 없습니다.");

		// 스크립트 관련 특수문자 삭제
		value = value.replace(/</g, '');
		value = value.replace(/>/g, '');
		value = value.replace(/\//g, '');
		value = value.replace(/\\/g, '');
		value = value.replace(/!/g, '');
		value = value.replace(/&/g, '');
		value = value.replace(/%/g, '');
		fieldObj.value = value;

		return false;
	}

	return true;
}

function checkFieldIncludeScript2(fieldObj, fieldName) {
	var value = fieldObj.value;
	if(value == "" || value == null) {
		return true;
	}

	if(value.toLowerCase().indexOf("<script>") != -1 || value.toLowerCase().indexOf("<object>") != -1 || value.toLowerCase().indexOf("<applet>") != -1 ||
		value.toLowerCase().indexOf("<embed>") != -1 || value.toLowerCase().indexOf("<form>") != -1 || value.toLowerCase().indexOf("<iframe>") != -1 ||
		value.toLowerCase().indexOf("<applet>") != -1) {
		alert(fieldName + "이(가) 스크립트를 포함하고 있습니다.");
		return false;
	}

	if(value.indexOf("\<") != -1 || value.indexOf("\>") != -1 ||
			value.indexOf("\/") != -1 || value.indexOf("\\") != -1 || value.indexOf("\!") != -1 || value.indexOf("\&") != -1 ||
			value.indexOf("\%") != -1 || value.indexOf("\*") != -1 || value.indexOf("\#") != -1 || value.indexOf("\{") != -1 ||
			value.indexOf("\}") != -1 || value.indexOf("\[") != -1 || value.indexOf("\]") != -1 || value.indexOf("\^") != -1
			|| value.indexOf("\'") != -1
			|| value.indexOf("\"") != -1
			) {

		alert("<>\\\/!&%*#{}[]^\'\" 등의 특수문자는 입력할 수 없습니다.");

		// 스크립트 관련 특수문자 삭제
		value = value.replace(/\</g, '');
		value = value.replace(/\>/g, '');
		value = value.replace(/\//g, '');
		value = value.replace(/\\/g, '');
		value = value.replace(/\!/g, '');
		value = value.replace(/\&/g, '');
		value = value.replace(/\%/g, '');
		value = value.replace(/\*/g, '');
		value = value.replace(/\#/g, '');
		value = value.replace(/\{/g, '');
		value = value.replace(/\}/g, '');
		value = value.replace(/\[/g, '');
		value = value.replace(/\]/g, '');
		value = value.replace(/\^/g, '');
		value = value.replace(/\'/g, '');
		value = value.replace(/\"/g, '');
		fieldObj.value = value;

		return false;
	}

	return true;
}



/**
* 텍스트필드가 스크립트를 포함하고 있나 확인 sales comment 사용
* @param fieldObj 필드 오브젝트
* @param fieldName 필드명
* @return
*/


function checkFieldIncludeScript3(fieldObj, fieldName) {
	var value = fieldObj.value;
	if(value == "" || value == null) {
		return true;
	}

	if(value.toLowerCase().indexOf("<script>") != -1 || value.toLowerCase().indexOf("<object>") != -1 || value.toLowerCase().indexOf("<applet>") != -1 ||
		value.toLowerCase().indexOf("<embed>") != -1 || value.toLowerCase().indexOf("<form>") != -1 || value.toLowerCase().indexOf("<iframe>") != -1 ||
		value.toLowerCase().indexOf("<applet>") != -1 || value.toLowerCase().indexOf("&lscript&gt") != -1) {
		alert(fieldName + "이(가) 스크립트를 포함하고 있습니다.");
		return false;
	}


	return true;
}



/**
 * 전화번호 형식으로 바꾸기
 * 예) 	02282342232 -> 02-8234-2232
 * 		0312437845	-> 031-124-7845
 * 		01071050616	-> 010-7105-0616
 * @param num
 * @return
 */
function phone_format(num){
	return num.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"$1-$2-$3");
}

/**
 * 특수문제 제한 체크
 * @param obj 체크할 필드 obj
 * @param speicalCharacters 제한할 특수문자
 * @param fieldName 경고창 표시용 필드명
 * @return
 */
function checkSpecialCharactersByObj(obj, speicalCharacters, fieldName) {
	var value = obj.value;
//	alert(speicalCharacters);
//	alert(value);

	for(var j = 0; j < value.length; j++) {
		for(var i = 0; i < speicalCharacters.length; i++) {
			if(value.charAt(j) == speicalCharacters.charAt(i)) { // 포함하고 있으면
				alert(fieldName + " 항목은 " + speicalCharacters + "를 포함할 수 없습니다.");
				return false;
			}
		}
	}

	return true;
}

/**
 * Qutaion 체크. 있으면 경고 & false 반환. 없으면 true
 * @param obj 체크할 필드 obj
 * @param fieldName 경고창 표시용 필드명
 * @param withDouble 더블쿼테이션 체크여부. true면 체크. false면 비체크
 * @return
 */
function checkQuateByObj(obj, fieldName, withDouble) {
	var value = obj.value;

	for(var i = 0; i < value.length; i++) {
		if(value.charAt(i) == "'") { // 싱글 쿼테이션 체크
			alert(fieldName + " 항목이 특수문자 '를 포함하고 있습니다.");
			obj.focus();
			return false;
		}

		if(withDouble) {
			if(value.charAt(i) == '"') { // 더블 쿼테이션 체크
				alert(fieldName + ' 항목이 특수문자 "를 포함하고 있습니다.');
				obj.focus();
				return false;
			}
		}
	}

	return true;
}

/**
 * 정규표현식을 이용하여 파일명을 체크함.
 * @param fileName
 * @param pattern
 * @return
 */
function checkFileNameByPattern(fileName, pattern) {
	//var fileName = "_-[]()#$";
	var ptn = /[^\w\d\.\_\-\,\[\]\(\)\#\$]+/;

	if(pattern == "undefined" || pattern == null) {
		if(ptn.test(fileName)) {
			return false;
		}
	}
	else {
		if(pattern.test(fileName)) {
			return false;
		}
	}

	return true;
}
